Nguyên tố Dạng chuẩn 1

Định nghĩa 1NF của Edgar F. Codd đưa ra tham chiếu đến khái niệm 'nguyên tố'. Codd tuyên bố rằng "các giá trị trong các miền mà mỗi quan hệ được xác định là bắt buộc phải là nguyên tố đối với DBMS."[7] Codd định nghĩa một giá trị nguyên tố là một giá trị "không thể phân tách thành các phần nhỏ hơn bởi DBMS (không bao gồm các hàm đặc biệt nhất định)"[8] có nghĩa là một cột không nên được chia thành các phần có nhiều hơn một loại dữ liệu trong đó sao cho một phần có nghĩa là DBMS phụ thuộc vào một phần khác của cùng một cột.

Hugh DarwenChris Date đã gợi ý rằng khái niệm "giá trị nguyên tố" của Codd là mơ hồ và rằng sự mơ hồ này đã dẫn đến sự nhầm lẫn phổ biến về cách hiểu 1NF.[9][10] Cụ thể, khái niệm "giá trị không thể phân tách" là có vấn đề, vì dường như nó ám chỉ rằng rất ít, nếu có, các loại dữ liệu là nguyên tử:

  • Một chuỗi ký tự dường như không phải là nguyên tố, vì RDBMS thường cung cấp các toán tử để phân tách nó thành chuỗi con.
  • Một số nguyên dường như không phải là nguyên tố, vì RDBMS thường cung cấp các toán tử để phân tách nó thành các thành phần nguyên và phân số.
  • Một ISBN dường như không phải là nguyên tử, vì nó bao gồm định danh ngôn ngữ và nhà xuất bản.

Date gợi ý rằng "khái niệm nguyên tử không có ý nghĩa tuyệt đối":[11][12] một giá trị có thể được coi là nguyên tố cho một số mục đích, nhưng có thể được coi là tập hợp các yếu tố cơ bản hơn cho các mục đích khác. Nếu vị trí này được chấp nhận, 1NF không thể được xác định với tham chiếu đến nguyên tố. Các cột của bất kỳ loại dữ liệu có thể hiểu được nào (từ kiểu chuỗi và kiểu số đến kiểu mảng và kiểu bảng) đều được chấp nhận trong bảng 1NF, mặc dù có lẽ không phải lúc nào cũng mong muốn; ví dụ, có thể mong muốn hơn khi tách một cột Customer Name thành hai cột riêng biệt như First Name, Surname.

Liên quan